package com.zs.blog.model.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * @Title: ArticleDetailVO
 * @Author zs
 * @Package com.zs.blog.model.vo
 * @Date 2025/3/24 21:32
 * @description: 文章详情视图对象
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ArticleDetailVO {
    @Schema(description = "文章ID")
    private Long id;

    @Schema(description = "文章标题")
    private String articleTitle;

    @Schema(description = "文章类型 [0:原创，1:转载，2:翻译 ]")
    private Integer articleType;

    @Schema(description = "文章状态 [0:公开，1:私密，2:草稿 ]")
    private Integer articleState;

    @Schema(description = "文章缩略图")
    private String articleThumb;

    @Schema(description = "文章描述")
    private String articleDescription;

    @Schema(description = "文章内容")
    private String articleContent;

    @Schema(description = "文章分类")
    private String articleCategory;

    @Schema(description = "文章标签")
    private List<TagListVO> tagList;

    @Schema(description = "文章作者")
    private String author;

    @Schema(description = "前一个文章ID")
    private Long preArticleId;

    @Schema(description = "前一个文章标题")
    private String preArticleTitle;

    @Schema(description = "后一个文章ID")
    private Long nextArticleId;

    @Schema(description = "后一个文章标题")
    private String nextArticleTitle;

    @Schema(description = "原文链接")
    private String originalUrl;

    @Schema(description = "浏览量")
    private Long viewCount;

    @Schema(description = "点赞数")
    private Long likeCount;

    @Schema(description = "是否可见[0:否,1:是]")
    private Integer isViewed;

    @Schema(description = "是否删除[0:否,1:是]")
    private Integer isDeleted;

    @Schema(description = "是否置顶[0:否,1:是]")
    private Integer isTop;

    @Schema(description = "创建时间")
    @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd hh-mm-ss", shape = JsonFormat.Shape.STRING)
    private String createTime;

    @Schema(description = "更新时间")
    @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd hh-mm-ss", shape = JsonFormat.Shape.STRING)
    private String updateTime;

}
